Советую скачать английскую W3ME 1.07. Там такой проблемы нет. Но если хочешь оставить эту, то оперируй папкой в непосредственной близости от проги. То есть прога будет работать с папками, которые находятся там же где и она. У меня была подобная проблема, приходилось перекидывать файлы с удобных мест, в одну папку. Это довольно раздражительно, потому советую скачать последнюю версию, она конечно на английском, но там слов то, как кот наплакал(с гулькин нос).
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду. Кампания - это пак карт.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
Вот что я тебе скажу. Иногда проще начать с нуля, чем разгребать ошибки. Просто создай новую кампанию , перекопируй старые триггеры. Всяко быстрее выйдет, чем несколько дней разбираться, да и качественнее.
Фон кампании в стандарте - это отдельная модель сцены, которую мы видим. Сделать такое невероятно сложно по причине нехватки нужных редакторов с работой подобных моделей и в том числе отсутствие внятного освещения. Она имеет несколько анимаций, зачастую birth stand ну и разумеется настроенные и анимированные камеры.
Попробовал через MPQ, пишет, "Невозможно открыть. Была сделана попытка загрузить программу, имеющую неверный формат".
Проблему решил. Спасибо. Помогла программа Power Data Recovery.
Бесплатное ПО для восстановления удаленных данных, потерянных в результате различных проблем или ошибочных действий.
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
ИИ не нравился герой, из-за него вообще никто не нанимался.
ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.
Событие - Юнит получает предмет.
Условие - Тип предмета (предмет, которым манипулируют) = меч.
Действие - Цикл А от 1 до 6:
Если тип предмета, переносимого Триггерным юнитом в слоте А = меч И предмет в слоте А не равно предмет, которым манипулируют, то Герой - Выбросить предмет из слота А.
Если у вас классовые (мечи и топоры, щиты, доспехи и др). То можно разделить по уровням (уровни итемов вообще нигде не используется), например 1 уровень = мечи топоры копья и др оружия. 2уровень = доспехи 3 уровень = щиты ну и др. Можно будет проверять по уровням.
вот
VVelikolepniy:
Для удобства. Если его нет, добавь этот код:
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local real result=0
loop
exitwhen i >= 50
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
set result = result + (id-0x100000)
endloop
set result = result/i-i/2
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(udg_HandleBoardH,0,R2I(result))
endfunction
function HandleCounter_Actions takes nothing returns nothing
set udg_HandleBoardH = CreateLeaderboard()
call LeaderboardSetLabel(udg_HandleBoardH, "Счетчик")
call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoardH)
call LeaderboardDisplay(udg_HandleBoardH,true)
call LeaderboardAddItem(udg_HandleBoardH,"Хэндлы",0,Player(0))
call LeaderboardSetSizeByItemCount(udg_HandleBoardH,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(udg_TimerH,0,false,function HandleCounter_Actions)
endfunction
И создай переменную таймер с именем TimerH, и переменную таблицы лидеров с именем HandleBoardH
потом инициируй функцию InitTrig_HandleCounter
что бы она сразу перешла в режим наведения.. а то выглядит как баг, из-за которого надо нажимать по 2 раза...
Gui -> Force player to use X key
Согласовываешь с хоткеем строительства ======================================
Бафф имеется в виду Бафф или Спецэффект?
Если спецэффект:
Если первый кадр анимации правильный, попробуйте удалить последний кадр анимации, потом скопировать кадр в её начале (Именно через команду "Кадры" - "Копировать (Ctrl + C)" !) и вставить его в конец. То же самое проделать с другой анимацией (Stand 2). Если это не поможет, тогда надо детально смотреть саму модель, что с ней не так. И ещё советую сохранять промежуточные версии модели, чтоб можно было сделать "откат", если возникнут ошибки.
IGOREIK, там четыре события на применение способности.
Пробуй разные, выбери, какое подойдёт лучше.
Вариант 8gabriel8 лучше. Немного дополню. Можно найти модель спецэффекта, который применяется во время включения способности. Посмотреть редакторами моделей (War3ME, например), какой там звук используется. И прописать импортированному звуку этот путь.
The Dude, это несерьезно. Все вопросы описаны в большом количестве статей здесь, на нашем сайте - xgm.guru/p/wc3/articles. То, что перечисляешь не верх мастерства WE, а базовые знания. Материалов предостаточно. Успехов в обучении.
RedLegion, Эмм опен лтд в помощь, в гугле бан дали?
Утечек небудет если не юзать ГУИ, а сам процесс смены там примитивен - сокрытие всех юнитов игрока в области где доступно строительсво и создание ходящих и аьакующих аналогов, каждую новую волну. Прочее типо Ии, таблицы, способностей крипов реализуются по вкусу. В оригинальном лтд код не шибко крут, с утечками и ГУИ, но работает.
скорее всего это
UI\Widgets\EscMenu\раса\раса-options-button-background-down.blp
UI\Widgets\EscMenu\раса\раса-options-button-background.blp
и подсветка кнопки
UI\Widgets\EscMenu\раса\раса-options-button-highlight.blp
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
Событие
периодическое событие - каждые 0.1 сек.-
Условие
time > 0
Действие
set time = time - 1
если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
2 триггер
Событие
боевая единица - юнит атакован
Условие
Атакующий юнит=герой или Атакованный юнит=герой
Действие
set time=30
боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
а почему так? отравленное оружие настраивает на сколька понизить в %. а сколько не ставь, все одно. мб что-то не правильное. абилка что ли бракованная
все врубился, понял формулу: скорость = Текущая скорость - (Текущая скорость * процент снижения)
слишком большие проценты ставил, в результате не видел, и выходило ниже скорость. А так как стоят ограничения в скорости (мин = 150, макс = 400 в константах), то упиралась в минималку, и не видел изменения, из-за чего ошибочно начал теории строить.
в абилках "отравленное оружие" и "яд" дриады - поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки .
Отравленное оружие 'Aven'/'ACvs'/Яд 'Aspo' - Buff Placer, позволяющая замедлять противника при атаке, и наносить ему урон каждую секунду. При атаке накидывает на противника дебафф (яд). Этот дебафф остается на противнике несколько секунд, повторная атака ядом продлевает длительность дебаффа. Этот дебафф наносит ежесекундный урон, и понижает скорости атак, движения. Характеристики:
"Данные - Урона в секунду" - ежесекудно наносит урона.
ВНИМАНИЕ: поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки (1.00 = 100%, 0.5 = 50%, 1.5 = 150%, 100% или 0% - не будет понижать). Понижение скорости идет по формуле: скорость = текущая скорость - (текущая скорость * процент понижения).
раскрыть
скорость движения юнита меняется от текущей скорости, и может упереться в ограничение установленных констант (мин = 150, макс = 400, если будет ниже скажем 100, то автоматом игра подправляет на 150). Скорость атаки изначально равняется 1 (100%), может по такой же формуле снижаться. например, снижение на 0.3. 1-(1*0.3)=0.7 - скорость атаки. или можно просто вычесть 1-0.3=0.7
У отравленного оружия есть два типа дебаффа: "Яд (не буферизуется)", "Яд (буферизуется)". Что это значит? Буферизация связана с настройкой "Тип буфера" (Тип буфера: здесь можно указать несколько галочек, всего их 4: "Урон" - суммирует ли ежесекудный эффект отравление, "Скорость боя" - удваивается ли коэффициент-множитель от скорости атаки (будет в несколько раз больше снижена скорость боя врага), "Движение" - удваивается ли коэффициент-множитель от скорости движения (будет в несколько раз понижена скорость противника), "Убить юнита" - при отравлении, типа может убить ядом). Эффекты от буфера складываются не повторной атакой одного юнита, а двух юнитов (если второй юнит с такой же абилкой нанесет атаку, то будут складываться эффекты). При буферизации урон суммируется, и коэффициенты скоростей складываются. Ежесекундный урон от отравления относится к типу атаки "заклинание", не понижается защитой, можно отнести к магическому урону
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
ИИ не нравился герой, из-за него вообще никто не нанимался.
ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.
Карта со всеми утечками и описанием их.
Вместо проклятия банши можно юзать туман(не рекоменд) или безмолвие(там есть вроде бы шанс промаха).
Ещё можно сделать ауру на основе пламени феникса, которое действует на своих.
Юнит повреждён
урон меньше 1
источник - союзный герой
дать уклонение
вейт/таймер
убрать уклонение если триг юнит не имеет баффа пламени(длительность регулируем)
1
Может, все дело в переменных? Попробуй в настройках поставить галочку копировать переменные вместе с триггерами или, если не сработает для твоего глючного редактора, попробуй скопировать переменные вручную перед триггерами.
Я ловлю фаталы в своей кампании каждое 10 сохранение и переделываю утраченный прогресс каждый раз на протяжении последних 3 лет разработки. Не говори о том, как тебе будет сложно переделывать все заново. Не делал резервные копии - сам виноват. Теперь будешь делать.
А по факту ты не залил карту
И да, через любой mpq можно вытащить карту из файла кампании
нужно на время дать этому юниту способность "превратится в ворона", тогда он будет менять высоту триггерно.
Увы не работает, можно проиграть анимацию из раздела "Sea" (есть у юнитов анфибий), тогда они утопнут в грунте будто в воде, но увы не у всех моделей есть такое свойство, ну либо делать у модели вашего героя анимацию проваливания под землю.
koloff:
Объявляются переменные в начале.
local lightning l
call AddLightningEx(codeName, true, GetLocationX(where1), GetLocationY(where1), GetLocationZ(where1), GetLocationX(where2), GetLocationY(where2), GetLocationZ(where2))
set l = bj_lastCreatedLightning
способ 1
вешать структуру на таймер с помощью эксплойта (для тех кто не знает структура это число) а потом этим таймером вызывать нужную функцию спустя 0 секунд
плюсы:
простота
минусы:
требует добавлять иф на каждую новую функцию
второй способ
тоже самое что и 1 только на таймер вешается вдобавок название функции и таймер вызывает её экзекутом
вот моя библиотека по 2 способу и карта с примером
в библиотеке в самом верху есть небольшой док по 3 функциям
Возможно, по средству скрещивания через триггер, видел в близовской карте Хеллоуин! Это что то типо ДОТЫ, только от близзард, есть по умолчанию в любом варике, старше версии 1.18. Легко открывается, триггер можно перезалить в свою карту.
Про области хз, вот именно их разве не через БД лучше, я же не знаю, как в создаваемой карте они называются - Пещера Тысячи Всхлипов или Пляж Огненных Уток...
Тут просто при входе в область писать ее при событии unit входит в область такую-то, легко же вроде даже на гуи...
А так атака ловится через GetUnitBaseDamage сложить с GetUnitGreenBonusDamage.
Скорость атаки через GetUnitAttackSpeed.
Броня через GetUnitArmor (я, правда, пока не мемхаковской пользуюсь, а другой, влом искать, но опытные мапмейкеры знают, если надо - спросить можно).
хпрег через GetUnitHPRegen + мб БД свое.
Мпрег через GetUnitMPRegen + мб БД свое.
Функции эти все тут github.com/DracoL1ch/WC3Memory/blob/master/war3map.j
По импорту мемхака все тут
VovkaShyt, будет, хоть 10 хоть 0,01 будет снижаться количеством брони, а эти параметры - снижение от типа брони, сила тьмы игнорирует тип брони, а вот атака героя не игнорирует тип защиты зданий, здания, вспомните как долго в мили картах ломаются здания.
Пушистый, создал и удалил 100к юнитов
результат счётчика 1100
на всякий случай сообщу что 1100 меньше чем 100к
так же не стоит забывать что вар тупит с большими сериями (если подряд создаётся/удаляется много объектов)
и начинает добавлять после последнего удалённого хэндла хотя предыдущие свободны и не занимают память
при следующей пересборке таблицы это проходит
для того чтобы счётчик адекватно реагировал на это надо чтобы размер серии счётчика был больше чем размер серии создаваемых объектов
я слегка модифицировал твой счётчик
globals
leaderboard udg_HandleBoard = null
endglobals
define sizehc=300;
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local integer result=0
local integer min=-1;
loop
exitwhen i >= sizehc
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
id-=0x100000
if(min==-1){
min=id;
}
if(id>result){
result=id;
elseif(id<min)
min=id;
}
endloop
if(result-min>sizehc){
result=min;
else
result-=sizehc
}
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(udg_HandleBoard,0,result)
endfunction
function HandleCounter_Actions takes nothing returns nothing
set udg_HandleBoard = CreateLeaderboard()
call LeaderboardSetLabel(udg_HandleBoard, "Handle Counter")
call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoard)
call LeaderboardDisplay(udg_HandleBoard,true)
call LeaderboardAddItem(udg_HandleBoard,"Handles",0,Player(0))
call LeaderboardSetSizeByItemCount(udg_HandleBoard,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.1,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(CreateTimer(),0,false,function HandleCounter_Actions)
endfunction
у меня создаётся и удаляется более 2к юнитов сериями по 200
длинна серии счётчика задаётся в sizehc (в моём случае это 300)
вот триггер создания юнитов
function Trigcru takes nothing returns nothing
local unit u= CreateUnit(Player(0),'hfoo',0,0,0)
call RemoveUnit(u)
set u=null
endfunction
function Trigcrul takes nothing returns nothing
local integer i=0
loop
call Trigcru()
exitwhen i==200
set i=i+1
endloop
endfunction
function Trig___________________________u_Actions takes nothing returns nothing
local integer i=0
loop
call Trigcrul()
call TriggerSleepAction(0.1)
call DisplayTextToPlayer(GetLocalPlayer(),0,0,I2S(i))
exitwhen i==10
set i=i+1
endloop
set i=0
call DisplayTextToPlayer(GetLocalPlayer(),0,0,"end")
call TriggerSleepAction(1)
endfunction
//===========================================================================
function InitTrig___________________________u takes nothing returns nothing
set gg_trg___________________________u = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg___________________________u, 2 )
call TriggerAddAction( gg_trg___________________________u, function Trig___________________________u_Actions )
endfunction
» WarCraft 3 / Редактор моделей
» WarCraft 3 / Опять не работает редактор кампаний
» WarCraft 3 / Доп статы
» WarCraft 3 / Круг выбора
» Администрация XGM / Кодировка
» WarCraft 3 / Не работает кампания
» WarCraft 3 / Подскажите триггер
» WarCraft 3 / Видимость через декорацию
» WarCraft 3 / Баги при создании модели
» WarCraft 3 / Не работают mix файлы
» WarCraft 3 / Предметы только для определенных игроков.
» WarCraft 3 / Редактор объектов World Editor
» WarCraft 3 / Постройка в области
» WarCraft 3 / Где находится текстура кнопки?
» WarCraft 3 / Снижается скорость атаки
» WarCraft 3 / Nwu в Iccup
» WarCraft 3 / Проблема в редакторе кампаний 2
» WarCraft 3 / Аура промахов
» WarCraft 3 / Проблема в редакторе кампаний
» WarCraft 3 / Изменение высоты юнита
» WarCraft 3 / Скорость дамми юнита
» WarCraft 3 / Типы Атаки и Защиты
» WarCraft 3 / Видно всех на карте